Auto-tuning security analysis tool configuration via correlation analysis

ABSTRACT

A configuration for a security analysis tool is received from a user. The configuration includes two or more configuration items. Each configuration item is a parameter in the configuration of the security analysis tool that has a plurality of possible values. A correlation between the two or more configuration items is determined. The correlation is based on one or more pre-determined empirical correlations.

BACKGROUND

The present invention relates generally to the field of securityanalysis, and more particularly to automatically tuning theconfiguration of security analysis tools based on correlation analysis.

Security analysis tools may be used to test an Internet application forsecurity vulnerabilities during the development process of theapplication. Testing for security issues during development isbeneficial as it is less expensive to fix such problems duringdevelopment or before an application is released. The security analysistools learn the behavior of each application being tested, whether anoff-the-shelf application or an internally developed application, anddevelops a program intended to test all of the functions of theapplication for both general security issues and application-specificvulnerabilities.

SUMMARY OF THE INVENTION

Embodiments of the present invention include a method, computer programproduct, and system for automatically tuning the configuration ofsecurity analysis tools based on correlation analysis. In oneembodiment, a configuration for a security analysis tool is receivedfrom a user. The configuration includes two or more configuration items.Each configuration item is a parameter in the configuration of thesecurity analysis tool that has a plurality of possible values. Acorrelation between the two or more configuration items is determined.The correlation is based on one or more pre-determined empiricalcorrelations.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a functional block diagram of a computing environment, inaccordance with an embodiment of the present invention;

FIG. 2 depicts a flowchart of a program for automatically tuning theconfiguration of security analysis tools based on correlation analysis,in accordance with an embodiment of the present invention; and

FIG. 3 depicts a block diagram of components of the computingenvironment of FIG. 1, in accordance with an embodiment of the presentinvention.

DETAILED DESCRIPTION

Embodiments of the present invention provide for automatically tuningthe configuration of security analysis tools based on correlationanalysis. Security analysis tools are used to analyze Internetapplications for security vulnerabilities during development when it isless expensive to fix any issues discovered by the analysis. Theanalysis of an application may be a complicated and difficult processbased on the large number of lines of code that comprise theapplication. This large number of lines of code led to automatedsecurity analysis replacing human analysis. The automated analysis mustperform deep semantic analysis of the lines of code to prevent missingany security vulnerabilities. Configuration of the automated securityanalysis tools is important to correctly perform the deep semanticanalysis.

Embodiments of the present invention recognize that there may be amethod, computer program product, and computer system for automaticallytuning the configuration of security analysis tools based on correlationanalysis. The method, computer program product, and computer system mayuse correlation data between different variables in the configuration(i.e., setup) of the security analysis tools to create an optimizedconfiguration. The optimized configuration is applied to multipleinstances of the application in order to determine less than optimalcombinations of configuration variables.

The present invention will now be described in detail with reference tothe Figures.

FIG. 1 is a functional block diagram illustrating a computingenvironment, generally designated 100, in accordance with one embodimentof the present invention. FIG. 1 provides only an illustration of oneimplementation and does not imply any limitations with regard to thesystems and environments in which different embodiments may beimplemented. Many modifications to the depicted embodiment may be madeby those skilled in the art without departing from the scope of theinvention as recited by the claims.

In an embodiment, computing environment 100 includes client device 120and device 130 connected to network 110. In example embodiments,computing environment 100 may include other computing devices (notshown) such as smartwatches, cell phones, smartphones, wearabletechnology, phablets, tablet computers, laptop computers, desktopcomputers, other computer servers or any other computer system known inthe art, interconnected with client device 120 and device 130 overnetwork 110.

In example embodiments, client device 120 and device 130 may connect tonetwork 110, which enables client device 120 and device 130 to accessother computing devices and/or data not directly stored on client device120 and/or device 130. Network 110 may be, for example, a local areanetwork (LAN), a telecommunications network, a wide area network (WAN)such as the Internet, or any combination of the three, and includewired, wireless, or fiber optic connections. Network 110 may include oneor more wired and/or wireless networks that are capable of receiving andtransmitting data, voice, and/or video signals, including multimediasignals that include voice, data, and video information. In general,network 110 can be any combination of connections and protocols thatwill support communications between client device 120, device 130, andany other computing devices connected to network 110, in accordance withembodiments of the present invention. In an embodiment, data received byanother computing device in computing environment 100 (not shown) may becommunicated to client device 120 and device 130 via network 110.

In embodiments of the present invention, client device 120 may be alaptop, tablet, or netbook personal computer (PC), a desktop computer, apersonal digital assistant (PDA), a smartphone, a standard cell phone, asmart-watch or any other wearable technology, or any other hand-held,programmable electronic device capable of communicating with any othercomputing device within computing environment 100. In certainembodiments, client device 120 represents a computer system utilizingclustered computers and components (e.g., database server computers,application server computers, etc.) that act as a single pool ofseamless resources when accessed by elements of computing environment100. In general, client device 120 is representative of any electronicdevice or combination of electronic devices capable of executingcomputer readable program instructions. Device 130 is substantiallysimilar to client device 120. Computing environment 100 may include anynumber of client device 120 and device 130. Client device 120 and device130 may include components as depicted and described in further detailwith respect to FIG. 3, in accordance with embodiments of the presentinvention.

In an embodiment, device 130 includes information repository 132 andauto-tune program 134. According to embodiments of the presentinvention, information repository 132 may be storage that may be writtento and/or read by auto-tune program 134. In one embodiment, informationrepository 132 resides on device 130. In another embodiment, informationrepository 132 resides on client device 120. In other embodiments,information repository 132 may reside on any other device (not shown) incomputing environment 100, in cloud storage or on another computingdevice accessible via network 110. In yet another embodiment,information repository 132 may represent multiple storage devices withinclient device 120 and/or device 130.

In an embodiment, information repository 132 may be implemented usingany volatile or non-volatile storage media for storing information, asknown in the art. For example, information repository 132 may beimplemented with a tape library, optical library, one or moreindependent hard disk drives, multiple hard disk drives in a redundantarray of independent disks (RAID), solid-state drives (SSD), orrandom-access memory (RAM). Similarly, information repository 132 may beimplemented with any suitable storage architecture known in the art,such as a relational database, an object-oriented database, or one ormore tables. In an embodiment of the present invention, auto-tuneprogram 134 and any other programs and applications (not shown)operating on client device 120 may store, read, modify, or write data toinformation repository 132. Examples of data stored to informationrepository 132 include pre-determined correlation rules based ondevelopment testing, previous analysis results of deployment runs onuser workstations, and crowdsourcing of configuration rules.

According to embodiments of the present invention, auto-tune program 134may be a program, a subprogram of a larger program, an application, aplurality of applications, or mobile application software, whichfunctions to tune the configuration of security analysis toolsautomatically based on correlation analysis. A program is a sequence ofinstructions written by a programmer to perform a specific task.Auto-tune program 134 may run by itself but may be dependent on systemsoftware (not shown) to execute. In one embodiment, auto-tune program134 functions as a stand-alone program residing on device 130. Inanother embodiment, auto-tune program 134 may be included as a part ofclient device 120. In yet another embodiment, auto-tune program 134 maywork in conjunction with other programs, applications, etc., found ondevice 130 or in computing environment 100. In yet another embodiment,auto-tune program 134 may be found on other computing devices (notshown) in computing environment 100 which are interconnected to device130 via network 110.

According to embodiments of the present invention, auto-tune program 134functions to tune the configuration of security analysis toolsautomatically based on correlation analysis. According to an embodimentof the present invention, auto-tune program 134 uses pre-determined,empirical correlation rules stored to a repository to provide anoptimized configuration for a security analysis tool.

In an embodiment, the empirical correlations are determined using theApriori data-mining algorithm. The Apriori algorithm generatescorrelations between items of an input database, DB. In an embodiment,DB includes a plurality of configuration items (p) and a plurality ofpossible values (v) for each of the plurality of configuration itemsresulting in a database that ranges over all possible pairs (p,v). DB isalso populated with raw configuration data from a large set of knowneffective configurations, which are available from any number ofexisting security analysis tools known in the art. The Apriori algorithmis then applied to DB. The Apriori algorithm performs a breadth-firstsearch to search through all possible (p,v) pairs up to a pre-set upperlimit if the number of pairs is prohibitively large. A breadth-firstsearch is an algorithm for searching graph data structures that startsat a root and explores neighbor nodes before moving to next levelneighbors. This application of the Apriori algorithm yields a set ofassociation rules for the (p,v) pair combinations, which can then beapplied to a user-generated configuration of a security analysis tool toidentify possible security issues with the user-generated configuration.

FIG. 2 is a flowchart of workflow 200 depicting a method forautomatically tuning the configuration of security analysis tools basedon correlation analysis. In one embodiment, the method of workflow 200is performed by auto-tune program 134. In an alternative embodiment, themethod of workflow 200 may be performed by any other program workingwith auto-tune program 134. In an embodiment, a user, via a userinterface (not shown), may invoke workflow 200 upon the user startingone or more applications on a computing device. In an alternativeembodiment, a user may invoke workflow 200 upon accessing auto-tuneprogram 134.

In an embodiment, auto-tune program 134 receives a configuration (step202). In other words, auto-tune program 134 receives a configuration fora security analysis tool for analysis of an application. According toone embodiment of the present invention, the configuration for thesecurity analysis tool is received from a user. According to anotherembodiment of the present invention, the configuration for the securityanalysis tool is received from a repository. According to yet anotherembodiment, the configuration for the security analysis tool is receivedfrom an auto-configuration tool. In an embodiment, the configuration ofthe security analysis tool includes one or more configuration items. Inan embodiment, a configuration item is a parameter in a securityanalysis tool configuration that has a plurality of possible values.Example configuration items include case sensitive uniform resourcelocators (URLs), in-session detection, automatic form fill requirements,parameters and paths being tracked, and the like, which are stored toinformation repository 132 on device 130. For example, “Joe”, who isusing a personal computer, provides a configuration for a securityanalysis tool that prioritizes checking case sensitive URLs overautomatic form fill requirements.

In an embodiment, auto-tune program 134 determines correlations (step204). In other words, auto-tune program 134 determines correlationsbetween two or more configuration items in the received configuration(step 202) and provides an optimized configuration to the user.According to an embodiment of the present invention, auto-tune program134 uses pre-determined empirical correlations, which are stored to arepository, to determine correlations of the configuration items in thereceived configuration of the security analysis tool and to provide anoptimized configuration to a user based on the pre-determined empiricalcorrelations. In an embodiment, auto-tune program 134 retrievespre-determined correlations from information repository 132 on device130 and uses the pre-determined correlations to determine thecorrelations of the received configuration for the security analysistool. For example, a program informs “Joe” that based on thepre-determined empirical correlations derived from the Apriori algorithm(previously discussed), automatic form fill requirements should beprioritized over checking case sensitive URLs.

In an embodiment, auto-tune program 134 sends a query (step 206). Inother words, auto-tune program 134 sends a query to a user requestingthat the user identify a priority of the configuration items in thereceived configuration. In an embodiment, based on the input receivedfrom the user, auto-tune program 134 determines effective combinationsfor the values of the prioritized configuration items based on thepre-determined empirical correlations stored to a repository. In anembodiment, auto-tune program 134 sends a query to a user of clientdevice 120 and subsequently receives an input from the user of clientdevice 120 indicating a priority of the configuration items in thereceived configuration. In the embodiment, based on the input from theuser and the pre-determined empirical correlation data stored toinformation repository 132 on device 130, auto-tune program 134determines effective configuration item values for the prioritizedconfiguration items indicated by the user. For example, “Joe” receives aquery on the personal computer being used by “Joe” from a programrequesting that “Joe” identify a priority of the configuration items inthe configuration of a security analysis tool. Due to the query, “Joe”sends an input to the program identifying that checking case sensitiveURLs is a higher priority than checking automatic form fillrequirements. Based on the input from “Joe” and the availablepre-determined empirical correlation data, the program determineseffective values for the two configuration items.

In an embodiment, auto-tune program 134 sends a recommendation (step208). In other words, auto-tune program 134 sends a recommendation ofthe determined effective values to the user for the user prioritizedconfiguration items. In an embodiment, auto-tune program 134 on device130 sends a recommendation of effective values for the configurationitems prioritized by a user of client device 120 to the user. Forexample, a recommendation of effective values for the configurationitems prioritized by “Joe” is sent to “Joe” on the personal computerbeing used by “Joe”.

FIG. 3 depicts computer system 300, which is an example of a system thatincludes auto-tune program 134. Computer system 300 includes processors301, cache 303, memory 302, persistent storage 305, communications unit307, input/output (I/O) interface(s) 306 and communications fabric 304.Communications fabric 304 provides communications between cache 303,memory 302, persistent storage 305, communications unit 307, andinput/output (I/O) interface(s) 306. Communications fabric 304 can beimplemented with any architecture designed for passing data and/orcontrol information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system. For example,communications fabric 304 can be implemented with one or more buses or acrossbar switch.

Memory 302 and persistent storage 305 are computer readable storagemedia. In this embodiment, memory 302 includes random access memory(RAM). In general, memory 302 can include any suitable volatile ornon-volatile computer readable storage media. Cache 303 is a fast memorythat enhances the performance of processors 301 by holding recentlyaccessed data, and data near recently accessed data, from memory 302.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 305 and in memory302 for execution by one or more of the respective processors 301 viacache 303. In an embodiment, persistent storage 305 includes a magnetichard disk drive. Alternatively, or in addition to a magnetic hard diskdrive, persistent storage 305 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 305 may also be removable. Forexample, a removable hard drive may be used for persistent storage 305.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage305.

Communications unit 307, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 307 includes one or more network interface cards.Communications unit 307 may provide communications through the use ofeither or both physical and wireless communications links. Programinstructions and data used to practice embodiments of the presentinvention may be downloaded to persistent storage 305 throughcommunications unit 307.

I/O interface(s) 306 allows for input and output of data with otherdevices that may be connected to each computer system. For example, I/Ointerface 306 may provide a connection to external devices 308 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 308 can also include portable computer readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention can be stored on such portablecomputer readable storage media and can be loaded onto persistentstorage 305 via I/O interface(s) 306. I/O interface(s) 306 also connectto display 309.

Display 309 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

What is claimed is:
 1. A computer system for automatically tuning aconfiguration of a security analysis tool based on a correlationanalysis, the computer system comprising: one or more computerprocessors, one or more computer readable storage media, and programinstructions stored on the one or more computer readable storage mediafor execution by at least one of the one or more computer processors,the program instructions comprising: program instructions to receive aconfiguration from a user for the security analysis tool, wherein: theconfiguration includes two or more configuration items; the securityanalysis tool is used to analyze an Internet application for securityvulnerabilities during development of the Internet application; eachconfiguration item is a parameter, in the configuration of the securityanalysis tool, that has a plurality of possible values; and eachconfiguration item is selected from the group consisting of casesensitive uniform resource locators (URLs), in-session detection,automatic form fill requirements, parameters and paths being tracked;program instructions to determine a correlation between the two or moreconfiguration items in the received configuration from the user, whereinthe correlation between the two or more configuration items is based onone or more pre-determined empirical correlations, wherein: the one ormore pre-determined empirical correlations are derived from an Apriorialgorithm; the Apriori algorithm generates correlations between two ormore items of an input database; the input database includes a pluralityof configuration items (p) and a plurality of possible values (v) foreach of the plurality of configuration items resulting in a databasethat ranges over all possible values of (p,v); the Apriori algorithmperforms a breadth-first search through all possible values of (p,v)that yields a set of association rules for the (p,v) pair combinations;and the breadth-first search is an algorithm for searching graph datastructures that starts at a root and explores neighbor nodes beforemoving to next level neighbors; program instructions to provide anoptimized configuration of the two or more configuration items in thereceived configuration to the user based on the determined correlationbetween the two or more configuration items in the receivedconfiguration; program instructions to send a query to the userrequesting a priority of the two or more configuration items in thereceived configuration; program instructions to receive an input fromthe user indicating the priority of the two or more configuration itemsin the received configuration; and program instructions to send arecommendation to the user, wherein the recommendation includes one ormore configuration item values for each configuration item of the two ormore configuration items based on the pre-determined empiricalcorrelations and the indicated priority of the two or more configurationitems.